# 1.借助socket传输数据，需要导入内置的socket模块
from socket import *

# 2.创建socket对象
"""
AF_INET: ipv4地址类型
SOCK_DGRAM: 用udp通信协议
"""
udp_socket = socket(AF_INET, SOCK_DGRAM)

# 3.准备接收方地址
"""
'192.168.1.25'： 接收方的ip地址
8080： 接收方的端口
注意: 数据类型 -- 元祖数据类型
"""
addr = ('192.168.1.25', 8080)

# 4.准备发送数据
send_data = input('请输入你要发送的数据:')

# 5.发送数据到指定的电脑程序中
# 传输的数据要是字节类型，不能是字符串类型
# 字符串 -- 字节： 编码 ， encode  utf-8  gbk
udp_socket.sendto(send_data.encode('gbk'), addr)

# 6.接收对方发送的数据
re_data = udp_socket.recvfrom(1024)  # 1024 表示本次接收的最大字节数
print(re_data)
"""
1. 接收到的数据类型: 元组类型
2. 元组里面的第一个数据： 字节类型的数据(发送过来的数据)
3. 元组里面的第二个数据： 对方的ip跟端口
.encode('gbk')：将字符串类型数据转为字节类型的数据
.decode('gbk'): 将字节类型的数据转为字符串类型的数据 
"""
print(re_data[0].decode('gbk'))

# 7.关闭socket
udp_socket.close()